type Point={x:number,y:number};

// keyof:键操作符，属于关键字
// keyof用于获取一个对象类型的所有属性名的联合类型，也就是该类型有哪些 key，返回 一个 字符串 字面量类型或者 数字 字面量类型的联合
// 总结： keyof T 表示 “类型T上的所有属性名组成的联合类型”

type P=keyof Point; //P类型的结果只能为 "x" "y"
// 等价于：type P= "x" | "y"

let a:P="x"

// typeof:类型推导操作符，属于关键字
// typeof在 TypeScript 中用于从值（变量、对象等）中推导出其类型，也就是说，它让你可以从一个 JavaScript 值得到对应的 TypeScript 类型。
// 总结： typeof variable表示 “获取变量 variable 的 TypeScript 类型”。——通常用于 “类型注解” 中，避免手动写类型

let variable = {};
type VariableType = typeof variable;
var al="Hello"
console.log(typeof al)
console.log(typeof variable)


const person = {
    name: "Bob",
    age: 25,
  };
  
// 推导出 person 的类型
type PersonType = typeof person;
// 等价于：
// {
//   name: string;
//   age: number;
// }

let pp=typeof person
console.log(pp)
